package org.poem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.poem.IdsVo;
import org.poem.datasource.DataAndParametersVo;
import org.poem.entity.TTaskDetail;
import org.poem.result.PageableResult;
import org.poem.task.TTaskDetailVO;

import java.util.List;

/**
 * @author poem
 */
public interface TTaskDetailService extends IService<TTaskDetail> {

    /**
     * 获取所有的数据
     * @return 查询的列表
     */
    List<TTaskDetail> getAllTaskDetail();


    /**
     * 获取全量
     * @return
     */
    List<TTaskDetail> getFullTaskDetail();

    /**
     * 更新状态
     * @param taskId 状态id
     * @param complete 1 全量同步过 0 没有全量同步
     */
    void updateTaskComplete(Long taskId, Integer complete );

    /**
     * 不可用
     * @param id
     */
    void unavailable(Long id);

    /**
     * 可用
     * @param id
     */
    void availability(Long id);


    /**
     *
     * @param pageSize
     * @param pageNumber
     * @return
     */
    PageableResult<TTaskDetailVO> getTaskDetailPage(Integer pageSize, Integer pageNumber);


    /**
     * 根据id获取数据
     * @param id id
     * @return
     */
    TTaskDetailVO getTTaskDetailById(Long id);

    /**
     * 修改或者是删除
     * @param tTaskDetailVO
     * @return
     */
    String saveOrUpdateTaskDetail(TTaskDetailVO tTaskDetailVO);

    /**
     * 批量删除
     * @param idsVo
     * @return
     */
    String deleteTask(IdsVo idsVo);

    /**
     * 获取连接
     * @param dataSourceVo
     * @return
     */
    List<String> getSchema(DataAndParametersVo dataSourceVo);


    /**
     * 开始全量同步
     * @param taskId
     */
    void startCompleteStartTask(Long taskId);
}
